In recent years, servers are used extensively in corporations due to their sizes and specifications, and the servers can be installed in a machine room for their unified management. For instance, a blade server can be mounted onto a server rack for its operation, and one of the major features of the blade server resides on that different chipsets, electronic components and interface devices are installed in a very limited space of the blade server, such that the blade server has a higher performance than traditional servers. However, the housing of the blade servers is restricted to a height of 1 U (1 U=1¾″ or 44.45 mm) by its specification, such that an interface card having a height exceeding the height of the housing cannot be inserted vertically and directly into a slot of a motherboard, even though the motherboard in the housing has many slots.
Based on the foregoing drawback, manufacturers developed a riser card, and the external look of the riser card is substantially the same as the interface card, and the difference between the riser card and the interface card resides on that the height of the riser card does not exceed the height of a circuit board of the housing, so that a lateral surface of the circuit board can have an expansion slot, and the direction of the opening of the expansion slot is 90 degrees from the slot. Therefore, the interface card can be inserted horizontally into the expansion slot, so that the interface card will be parallel to the motherboard and its height will not exceed the height of the housing.
However, other slots of the housing will be blocked after the interface card is inserted into the expansion slot. Although the foregoing arrangement can solve the problem on inserting the interface card vertically, it also reduces the expandability of the server. Therefore, manufacturers usually add a riser card to solve this problem and use a circuit comprised of different electronic components on the riser card to support the expansion slot with a communication protocol which is same or different as the slot, or a portion of the expansion slot of the riser card supports a communication protocol which is the same as the slot and another portion of the expansion slot supports a communication protocol which is different from the slot. To enable the riser card correctly, a basic input/output system (BIOS) of the server usually creates a configuration information in the basic input/output system to support the riser card, such that an operating system of the server can enable the riser card based on the configuration information.
However, an expansion slot of a riser card may have a device number equal to the device number of another expansion slot, while both expansion slots are using different interrupt request routers. For example, one kind of riser cards has a peripheral component interconnect extended (PCI-X) expansion slot, and another kind of riser cards has a peripheral component interconnect express (PCI-E) expansion slot and a PCI-X expansion slot as shown in the following table, and the two kinds of riser cards have different device numbers but they use the same interrupt request router as shown below:
AdvancedProgrammableProgrammableInterruptInterruptControllercontrollerInterrupt requestInterrupt requestDevicerouter (PIC IRQnumber (APICExpansion SlotNumberrouter)IRQ number)Riser Card 1: PCIX3LINKA, C, B, D24, 26, 25, 27SlotRiser Card 2: PCIX3LINKC, A, D, B26, 24, 27, 25Slot
Further, some riser cards have come with an IO APIC controller (such as PXH or PXHD), and some riser cards do not have the IO APIC controller. Further, the same PCI, PCI-X or PCI-E bridge has different configuration information due to the different riser card (such as a riser card having two PCI-E expansion slots or a riser card having one PXH and two PCI-E expansion slots).
In summation of the description above, the server has a basic input/output system (BIOS) for creating a configuration information to support only one particular riser card. If the configuration information of the riser card inserted to the server does not match with the configuration information of the riser card set in the basic input/output system, then the operating system of the server cannot enable the riser card properly. Thus, finding a way for the server to obtain the configuration information of the riser cards installed to the server from the basic input/output system, so as to enable different riser cards properly demands immediate attentions and feasible solutions.